Skip to content

feat(sdk): add MAS FEAT compliance module#58

Merged
saurabhjain1592 merged 8 commits into
mainfrom
feat/mas-feat-compliance
Jan 23, 2026
Merged

feat(sdk): add MAS FEAT compliance module#58
saurabhjain1592 merged 8 commits into
mainfrom
feat/mas-feat-compliance

Conversation

@saurabhjain1592

Copy link
Copy Markdown
Member

Summary

Adds Java SDK support for MAS FEAT (Monetary Authority of Singapore Fairness, Ethics, Accountability, Transparency) compliance framework.

Features:

  • AI System Registry with 3-dimensional materiality classification
  • FEAT Assessment lifecycle management (create, update, submit, approve/reject)
  • Kill Switch configuration with auto-trigger thresholds
  • Full type definitions with Builder pattern
  • Comprehensive Javadoc documentation

Enterprise Feature: Requires AxonFlow Enterprise license.

Usage

AxonFlowClient client = AxonFlowClient.builder()
    .clientId("your-client-id")
    .clientSecret("your-client-secret")
    .endpoint("https://your-axonflow.example.com")
    .build();

// Register an AI system
AISystemRegistry system = client.masfeat().registerSystem(
    MASFEATTypes.RegisterSystemRequest.builder()
        .systemId("credit-scoring-v1")
        .systemName("Credit Scoring AI")
        .useCase(MASFEATTypes.AISystemUseCase.CREDIT_SCORING)
        .ownerTeam("Risk Management")
        .customerImpact(4)
        .modelComplexity(3)
        .humanReliance(5)
        .build()
);

System.out.println(system.getMateriality()); // "high" (sum=12)

Test plan

  • Verify Java SDK compiles successfully
  • Verify all MAS FEAT types are accessible
  • Test against enterprise API endpoints (requires enterprise environment)
  • Verify documentation examples work

🤖 Generated with Claude Code

Add MAS FEAT (Singapore MAS) compliance types:

Enums:
- MaterialityClassification (high/medium/low)
- SystemStatus (draft/active/suspended/retired)
- FEATAssessmentStatus (pending/in_progress/completed/approved/rejected)
- KillSwitchStatus (enabled/disabled/triggered)
- AISystemUseCase (credit_scoring, robo_advisory, etc.)

Request/Response Types (all with Builder pattern):
- RegisterSystemRequest, AISystemRegistry, RegistrySummary
- CreateAssessmentRequest, UpdateAssessmentRequest, FEATAssessment
- ConfigureKillSwitchRequest, CheckKillSwitchRequest, KillSwitch
- ApproveAssessmentRequest, RejectAssessmentRequest
- TriggerKillSwitchRequest, RestoreKillSwitchRequest
- KillSwitchEvent

Enterprise Feature: Requires AxonFlow Enterprise license.
@saurabhjain1592 saurabhjain1592 force-pushed the feat/mas-feat-compliance branch from 02350f6 to 17757e7 Compare January 23, 2026 16:36
Add tests for all enums, request builders, and response types in
the MAS FEAT compliance module to improve coverage.
Replace List<String> with List<Finding> for type safety.
Add FEATPillar, FindingSeverity, FindingStatus enums.
Finding includes: id, pillar, severity, category, description,
status, remediation, dueDate.
Add MASFEATNamespace inner class with all MAS FEAT API methods:

Registry:
- registerSystem, activateSystem, getSystem, getRegistrySummary

Assessments:
- createAssessment, getAssessment, updateAssessment
- submitAssessment, approveAssessment, rejectAssessment

Kill Switch:
- getKillSwitch, configureKillSwitch, triggerKillSwitch
- restoreKillSwitch, getKillSwitchHistory

Includes field name mapping (customerImpact → risk_rating_impact, etc.)
and response parsing with alternate field name handling.
- Switch from MockWebServer to WireMock (consistent with project)
- Fix activateSystem test to match PUT /registry/{id} endpoint
- Fix method signatures (approveAssessment, restoreKillSwitch, etc)
- Remove listSystems test (method not implemented yet)
- Use string comparison for KillSwitchEvent eventType
@saurabhjain1592 saurabhjain1592 merged commit 8f35d0c into main Jan 23, 2026
9 checks passed
@saurabhjain1592 saurabhjain1592 deleted the feat/mas-feat-compliance branch January 27, 2026 10:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant